<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>长字符串截取实例</title>
</head>
<body>

<%!	// 截取字符串函数，返回处理后的字符串
	// 参数说明：source 标识需要判断的字符串
	// len 表示要截取的字符数
	// delim 表示截取后附加在后的字符串
	public static String strTruncate(String source, int len, String delim) {
		if(source==null) return null;// 字符串为空不做处理
		int start, stop, byteLen;
		int alen = source.getBytes().length; // 得到需要截断的字符串的字符数
		if(len > 0) {
			if(alen<=len) return source;//如果比要截取的字符数还小，不做处理
			start = stop = byteLen = 0;
			while(byteLen <= len) {
				if(source.substring(stop,stop+1).getBytes().length == 1) {
					// 单字节字符处理
					byteLen += 1;
				} else {
					byteLen += 2;
				}
				stop++;
			}
			StringBuffer sb = new StringBuffer(source.substring(start, stop-1));
			if(alen>len) sb.append(delim); // 加入附加在后的字符串
			return sb.toString();
		}
		return source;
	}
%>

<%
	String s1=new String("【2011年3月1日】恭喜您提交的应用《****》已通过审核。你可以继续更新应用信息，谢谢！ ");
	String s2=new String("【2011年6月1日】非常遗憾您提交的应用『****』没有通过审核！ ");
	String s3=new String("【2011年1月1日】恭喜您提交的应用《****》已通过审核。你可以继续更新应用信息，谢谢！ ");	
	out.println(strTruncate(s1, 50, "...")+"<br>");
	out.println(strTruncate(s2, 50, "...")+"<br>");
	out.println(strTruncate(s3, 50, "...")+"<br>");
%>

</body>
</html>